package com.ardf.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Getter;
import lombok.Setter;

import java.io.Serial;
import java.io.Serializable;

/**
 * <p>
 * 算法表
 * </p>
 *
 * @author ShiYunHao
 * @since 2025-01-06
 */
@Getter
@Setter
public class Algorithm implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 算法id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 算法种类
     *
     * <p>
     * 0：无顺序<br>
     * 1：有顺序，不能反悔，取第一个站开始算的最长有效子路线<br>
     * 2：有顺序，能反悔，取最长有效子路线<br>
     * 3：有顺序，不能反悔，取最长有效子路线<br>
     * 4：接力赛无顺序<br>
     * 5：快速赛无顺序<br>
     * 6：阳光严格有顺序
     * </p>
     */
    @TableField("`type`")
    private Byte type;

    /**
     * 算法状态
     *
     * <p>
     * 0：商定，非最终<br>
     * 1：商定，最终<br>
     * 2：非商定，非最终<br>
     * 3：非商定，最终
     * </p>
     */
    private Byte status;

    /**
     * 外键：规则id
     */
    private Long ruleId;
}
